Dynamic environment evaluation and service adjustment

ABSTRACT

An intelligent personalized agent monitors, regulates, and advises a user in decision-making processes for efficiency or safety concerns. The agent monitors an environment and present characteristics of a user and analyzes such information in view of stored preferences specific to one of multiple profiles of the user. Based on the analysis, the agent can suggest or automatically implement a solution to a given issue or problem. In addition, the agent can identify another potential issue that requires attention and suggests or implements action accordingly. Furthermore, the agent can communicate with other users or devices by providing and acquiring information to assist in future decisions. All aspects of environment observation, decision assistance, and external communication can be flexibly limited or allowed as desired by the user.

BACKGROUND

Individuals interact with their environments in various manners. Somepeople have an acute sense of awareness, while others can be somewhatoblivious to their surroundings. For any given person, uniquecircumstances that depend on level of importance of a particularsituation can affect his/her behavior. For example, in some settings,such as during a job interview or other important meeting, one may behighly perceptive to his/her environment, including observation ofreactions, behavior, and presence of others. In turn, this informationnaturally influences his/her behavior within in such environment. Inother settings, such as during grocery shopping or other routineerrands, one may not be as concerned with devoting his/her attention toespecially detailed aspects of the surroundings.

In many situations, one may be too busy or otherwise unable to fullyobserve and interpret his/her environment. Sometimes an individualsimply needs assistance with scheduling activities, navigating throughdirections, and coordinating with others for reasons of safety orconvenience. For instance, an individual that is lost may need help withdetermining where he/she is currently located, in addition to planning aroute to a desired destination. Furthermore, respective individualsdesire different levels of assistance that should take into accounttheir unique reactions and preferences. For example, in making aselection, such as for a cleaning service, gas station, or touristattraction, different people presented with the same options may likelyhave varying opinions and make personalized decisions based on pastexperiences, observations, and suggestions from others. Accordingly, themarketplace (as well as life in general) comprises a vast variety ofresources, services, attractions so as to meet unique demands ofindividuals. However, as a result of ever increasing advances incomputing and communications technologies, the amount of choicesavailable to people as grown to a point where selection and decisionmaking can be difficult let alone a nuisance. In view of the wideselection of options presented in many aspects of everyday existence, aperson can live and work more efficiently with at least some externalassistance in regulating, monitoring, and advising decisions in his/herown life.

SUMMARY

The following presents a simplified summary of the claimed subjectmatter in order to provide a basic understanding of some aspectsdescribed herein. This summary is not an extensive overview and is notintended to identify key/critical elements or to delineate the scope ofthe claimed subject matter. Its sole purpose is to present a summary ofthe following detailed description of preferred embodiments of theinvention.

An intelligent personalized agent (e.g., guardian angel) monitors andevaluates a user's environment to assist in decision-making processes onbehalf of the user. Such implementation may be presented in the form ofa software assisted mind amplifier. The amplifier analyzes preferencesand predicts future actions based on the analysis. For example, if auser is at a shopping mall, the guardian angel can evaluate thesurrounding environment with respect to the user's own attributes andpreferences and determine or infer that the time of day is noon, theuser has not eaten lunch, and there are no pending appointments at themoment. The guardian angel with knowledge of the user's favorite foods,last time frames for consumption of such favorite foods, and availablerestaurants in proximity to the user can provide directions to thenearest positively rated restaurant that serves such favorite food aswell as (in the background) check for seating availability, and make areservation (if needed). Thus, the guardian angel can, based onenvironment, user state, preferences, and available resources, takeautomated action on behalf of the user for various purposes (e.g., tocompensate for memory loss, to remind a user to take medicine, to assistin social interactions by indicating whether the user has met anindividual before, to gauge the appropriateness of jokes or commentsgiven the demographics of the audience, etc.).

The guardian angel can continuously monitor a variety of factors in auser's environment, including aspects related to: location, time,velocity, acceleration, local commerce/retail structures, altitude,temperature, biographical information, proximity/relationship to otherobjects, capability of other objects, application/relevancy/usage, andInternet/email configuration. Mechanical and/or electromagnetic devicesmay be used to monitor a user's physical/mental state within the contextof a particular environment. For example, a sensor can be attached tothe user to monitor his/her heartbeat with respect to his/her currentactivity (e.g. a higher heartbeat is normal during exercise, while alower heartbeat is normal during rest). Furthermore, a device maydirectly interact with a brain without bulky attachments. The guardianangel combines such environmental factors with past, present, and/orfuture preferences as well as attributes of the user to suggest optionsin a decision-making process. A utility-based analysis can be performedin connection with making an automated decision as a function ofexpected benefit versus cost of making an incorrect decision.

Any of the above information can be shared or held private as desired bythe user. Shared information can be especially useful when applied tocoordination devices, for example, when a group of friends are travelingtogether and would like to easily coordinate a time and place to meet.Information sharing can be based on trust and/or restricted to aspecific window of time. In addition, a user may be hesitant to sharehis information to unfamiliar services and limit such exposureaccordingly. The guardian angel can also evaluate the reputation ofthose services to assist the user in a determination of whether or nothe wants to interact with a particular service.

Furthermore, the guardian angel can manage multiple personas for a givenuser. In an example, a user may want to have a default or core personafor work, but maintain separate personas for school, extracurricularactivities, and personal life. Each persona may have distinctpreferences, security defaults, subscriptions, memory settings, etc.

To the accomplishment of the foregoing and related ends, certainillustrative aspects are described herein in connection with thefollowing description and the annexed drawings. These aspects areindicative, however, of but a few of the various ways in which theprinciples of the claimed subject matter may be employed, and suchsubject matter is intended to include all such aspects and theirequivalents. Other advantages and novel features may become apparentfrom the following detailed description when considered in conjunctionwith the drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an environment evaluation system (guardianangel).

FIG. 2 is a block diagram of a decision-making component anduser-attribute store.

FIG. 3 is a block diagram of a decision-making component in connectionwith many personalities.

FIG. 4 is a block diagram of an environment evaluation system (guardianangel) in communication with other users/devices.

FIG. 5 is a representative flow diagram illustrating a method forgenerating a decision.

FIG. 6 is a representative flow diagram illustrating a method forupdating stored preferences.

FIG. 7 is a representative flow diagram illustrating a method formanaging multiple personalities.

FIG. 8 is a representative flow diagram illustrating a method forbroadcasting information.

FIG. 9 is another representative flow diagram illustrating a method forbroadcasting information.

FIG. 10 is a representative flow diagram illustrating an example forfacilitating decision-making.

FIG. 11 is a schematic block diagram illustrating a suitable operatingenvironment.

FIG. 12 is a schematic block diagram of a sample-computing environment.

DETAILED DESCRIPTION

The claimed subject matter is now described with reference to thedrawings, wherein like reference numerals are used to refer to likeelements throughout. In the following description, for purposes ofexplanation, numerous specific details are set forth in order to providea thorough understanding of the claimed subject matter. It may beevident, however, that such subject matter may be practiced withoutthese specific details. In other instances, well-known structures anddevices are shown in block diagram form in order to facilitatedescribing the claimed subject matter.

As used in this application, the terms “component” and “system” areintended to refer to a computer-related entity, either hardware, acombination of hardware and software, software, or software inexecution. For example, a component may be, but is not limited to being,a process running on a processor, a processor, an object, an executable,a thread of execution, a program, and/or a computer. By way ofillustration, both an application running on a server and the server canbe a computer component. One or more components may reside within aprocess and/or thread of execution and a component may be localized onone computer and/or distributed between two or more computers.

FIG. 1 is a block diagram of an environment evaluation system (guardianangel) 140 that provides suggestions and assistance in decision-makingprocesses for an individual. The guardian angel 140 receives andanalyzes information with respect to a surrounding environment in thecontext of unique characteristics of a user and offers one or moresuggestions regarding the situation at hand. The guardian angel 140comprises a monitoring component 110 that collects and filters theinformation, and a decision-making component 120 that evaluates relevantenvironment information in view of a user-attribute store 130 ofpreferences specific to the user. The evaluation can result in asuggestion or automatic action that provides assistance, implements adecision, or suggests a solution to the issue in question. The guardianangel is not limited to a particular device, area of information, ormonitoring scheme, but rather is a flexible and customizable tool tohelp regulate, monitor, and advise a user in the context of his/herenvironment. The guardian angel can be preprogrammed and sold to beemployed amongst a plurality of users.

The guardian angel 140 can detect a wide variety of states and extrinsicinformation, such as, for example, location, change in location, time ofday, velocity of travel, acceleration, altitude, temperature, sound,identification, proximity, and movement. Not only does the guardianangel 140 monitor an environment, but also a user (e.g., heartbeat, bodytemperature, mood, etc.). In other words, as the guardian angel 140 isfocusing on its main goal of, for instance, detecting users with adisease (e.g., as evidenced by, among other symptoms, a high bodytemperature) and precluding those users from entering a restricted area,the guardian angel may be informed of other supplemental issues that mayor may not be directly related to the main task. In another example,while monitoring a user's environment for weather and traffic, theguardian angel 140 can suddenly notice that the user's heartbeat hasstopped and therefore takes automatic action to call for help. A varietyfeatures of a guardian angel may be controlled by the user, such thatthe user can influence, set preferences, automate, script, upgrade,allow/deny permissions and turn on/off one or more aspects of theguardian angel at any time as he/she chooses.

The monitoring component 110 receives information setting forth detailsregarding an environment (e.g. time of day, location, outsidetemperature, etc.), as well as the present status pertaining to a user(e.g., body temperature, hunger level, etc.). For example, themonitoring component 110 can take note of the number of conversationsoccurring in a room (and more specifically, a breakdown of the types ofpeople in the room accompanied by a warning for dangerous persons, basedon sex offender registration, FBI most wanted, etc.), relative proximityof the user to various devices and people, the last time the user typeda key on a keyboard, and amount and subject of interaction with others.A user may restrict the monitoring component 110 to observations thatare specifically permitted in advance by the user. The monitoringcomponent 110 sends relevant information for current or future decisionsto the decision-making component 120 that analyzes the informationwithin the context of personal preference data stored in theuser-attribute store 130 in order to make a suggestion or implement adecision. Such decision is made consistent with helping the user, aswell as avoiding situations where the user would be harmed. Thedecision-making component 120 stores potentially relevant informationfor future use in the user-attribute store 130. For example, thedecision-making component 120 can receive environment informationregarding time of day, hunger level, the location of the user, andproximate restaurants and analyzes such information in connection withpreferences saved in the user-attribute store 130 setting forth theuser's schedule and favored restaurants. The decision-making component120 can suggest a restaurant to the user or automatically makereservations at a selected restaurant. The decision-making component 120may concurrently manage multiple suggestions and actions that span awide range of services.

The user-attribute store 130 is a comprehensive container ofpersonalized data regarding a user. The user-attribute store 130 can beconfigured and updated directly by a user as an explicit process andcontinually updated with information as received by the decision-makingcomponent 120 as an implicit process. In addition, the user-attributestore 130 can be updated with information received or implied fromcircumstances after a decision is made. For instance, the user caninitially load and return to update his/her schedule and list ofpreferred dry cleaning services, restaurants, stores, etc. as well ascorresponding contact phone numbers, addresses, menus, and ratings. Asthe user travels through a new environment, the user-attribute store 130is continually updated with data relating to the new environment thatwill likely apply to his/her preferences. The information in theuser-attribute store 130 may be supplemented, deleted, and modified atany time by multiple parties, but the owner (user) of the user-attributestore 130 can limit access to certain areas or times (e.g., modificationby another source is authorized to update a restaurant phone number, butnot authorized to change the user's schedule).

It is to be appreciated that embodiments described herein can employvarious machine learning-based schemes for carrying out various aspectsthereof. For example, decision-making analysis can involve using anautomatic classifier system and process. The classifiers can be employedto determine and/or infer a need for action, to assist with whatinformation should be analyzed to generate a suggestion and determine ifthe suggestion should be implemented, and to automatically update storedinformation relating to stated or implied preferences of a user. Theclassifiers can also apply a utility-based analysis that considers thecost associated with implementing a suggested course of action againstthe expected benefit to the user, in view of costs suffered in the eventthe action was not desired. Moreover, current user state (e.g., amountof free time, urgency, need for accuracy, user frustration, displaydevice capabilities . . . ) can be considered in connection withrecognition in accordance with the embodiments described herein.

A classifier is a function that maps an input attribute vector, X=(x₁,x₂, x₃, x₄, . . . x_(n)), to a confidence that the input belongs to aclass, that is, f(X)=confidence(class). Such classification can employ aprobabilistic and/or statistical-based analysis (for example, factoringinto the analysis utilities and costs) to prognose or infer an actionthat a user desires to be automatically performed (e.g., makecorrections to incorrectly interpreted handwriting).

A support vector machine (SVM) is an example of a classifier that can beemployed. The SVM operates by finding a hypersurface in the space ofpossible inputs, which hypersurface attempts to split the triggeringcriteria from the non-triggering events. Intuitively, this makes theclassification correct for testing data that is near, but not identicalto, training data. Other directed and undirected (e.g., supervised andunsupervised) model classification approaches include, e.g., static anddynamic Bayesian networks, decision trees, and probabilistic graphicalmodels providing different patterns of independence can be employed.Classification as used herein also is inclusive of statisticalregression that is utilized to develop models of priority.

As will be readily appreciated from the subject specification, thesubject invention can employ supervised classifiers that are explicitlytrained (for example, by a generic training data) as well assemi-supervised or unsupervised classifiers that are implicitly trained(for example, by observing user behavior, receiving extrinsicinformation). For example, SVMs are configured by a learning or trainingphase within a classifier constructor and feature selection module.Thus, the classifier(s) can be used to automatically perform a number offunctions as described herein. Accordingly, the monitoring component110, decision-making component 120, and user-attribute store 130 canoptionally employ classifiers in connection with effecting thefunctionalities associated therewith.

In FIG. 2, a block diagram of a decision-making component 120 anduser-attribute store 130 that facilitates analysis of information andgeneration of a suggestion or automated implementation of the suggestionis depicted. The decision-making component 120 receives relevantinformation regarding a user and his/her environment and produces asuggestion or implements the action, by way of an environment processor210, analysis component 220 (with reference to the user-attribute store130), and decision generator 230.

The environment processor 210 obtains information relevant to a user andhis/her environment and processes such information to identify one ormore situations where decisions should be made. For example, informationabout a local car accident that just occurred can contribute to adecision to change a driving route. The analysis component 220 evaluatesthe information in view of personal preferences stored in theuser-attribute store 130. For instance, car accident notifications canbe taken into account when viewing a user's agenda of scheduled meetingsthat day, in consideration of traffic delays and alternate routes for alength of time that depends on the severity of the accident. Thedecision generator 230 can employ the analysis to arrive at a solutionto a given or potential problem. For example, the decision generator 230can suggest an alternate driving route while a user is driving tohis/her appointment. In addition, the decision generator 230 canautomatically move the appointment reminder to an earlier time (e.g., 1hour in advance rather than 30 minutes in advance), to ensure that theuser has adequate time to travel in view of the inevitable delay.

While the user-attribute store 130 can be updated with relevantinformation about an environment, as it is received by the environmentprocessor 210 and passed through to the analysis component 220, theuser-attribute store 130 can also track decisions made by the decisiongenerator 230 in order to assist in automated decision-making for futuresituations. Other information that may be tracked includes usersatisfaction with respect to the suggestion or automated action,consequences that occur as a result of an action, and reactions ofothers in response to an action. At any moment in time, a user canexplicitly add, modify, or delete a specification in the user-attributestore 130.

As illustrated in FIG. 3, a block diagram of a decision-making componentin connection with multiple personalities 300 is presented. Inparticular, a guardian angel can proceed under one of many userprofiles, such as separate data stores for work preferences, homepreferences, and school preferences. For example, a user at work mayhave different lunch preferences than the same user at home or atschool. Therefore, the decision-making component 120 can flexibly accessthe proper personality for each decision.

The decision-making component 120 is operatively connected to a modeselector 310 that has data store options, personality 1 throughpersonality Y (320-340). The mode selector 310 accesses the appropriatepersonality, which may be set by the user, another user, or inferredfrom patterns based on the time of day, type of environment, previousselections, etc. When a personality setting is selected, thedecision-making component 120 accesses the data store corresponding tothat setting for analysis in the context of the environment. Forexample, a work profile can be selected as inferred by the time of day(e.g., late morning), location (e.g. office), and empirical instanceswhere the user in the office during the late morning prefers to usehis/her work profile. Accordingly, the decision-making component 120takes into account work preferences of the user when schedulingappointments during the daytime, selecting restaurants for lunch, etc.In the alternative, a single data store can maintain separatepreferences for each profile and switch modes as necessary.

FIG. 4 depicts a block diagram of an environment evaluation system(guardian angel) in communication with other users/devices 400.Information obtained or generated by a guardian angel 140 can beavailable to a restricted or unrestricted number of other users ordevices so that groups of people can coordinate their schedules witheach other, set meetings, seek advice, etc. For example, an employee maywant information contained in his/her guardian angel to be accessible tohis/her secretary so that the secretary may be aware of (and avoid)conflicts and/or can assist in answering questions from others withoutdisturbing the employee. The guardian angel 140 is regulated by abroadcast device 410 that serves as a connection point for multipleusers and/or devices 1 through X (420-440).

The guardian angel 140 monitors, supports, and regulates a user. Theguardian angel contains information directly acquired from an outsidesource (e.g., contact information for area restaurants, demographicinformation, and other observable information), as well as additionalinferred information based on analysis of the acquired information(e.g., level of preference for each restaurant, predicted diagnosis ofan illness, etc.). Other users and devices may be interested in at leastsome of this information. For example, a variable billboard on a freewaymay display targeted advertisements based on information detected frompassing cars. If users allowed their demographical information to bebroadcast to these entities and were found to have characteristics of abusy, working professional, the billboard could, for instance,momentarily display an advertisement of a high-end car while these userswere passing the billboard. A user may also restrict identifyinginformation if he/she chooses to maintain anonymity. The guardian angelfacilitates protection of information through user preferences withrespect to negotiations, sales, cost-benefit analysis, etc.

The broadcast device 410 manages permissions for access to the guardianangel 140. Restrictions can be explicitly set by the user or implicitlydetermined by the broadcast device 410 based on nature of theinformation, reputation of the source requesting access, vulnerabilityof the user, etc. Such restrictions can be adjusted according tochanging circumstances or as desired by the user. The broadcast device410 can concurrently allow access for all users, some users, or no usersand may limit the amount of information available to each user.Furthermore, the broadcast device 410 can actively send information todesignated users or devices (e.g., a command to send information to arestaurant to make lunch reservations) and/or can passively allow usersor devices to probe the guardian angel 140 for information. The guardianangel can facilitate real time interaction among other guardian angelsand/or users. For example, a guardian angel can release real time healthinformation with the user's doctor or caretaker. The doctor or caretakercan work with the guardian angel to provide suggestions or set upautomatic medication disbursement to the user in real time. In anotherexample, a user's guardian angel can communicate information about useron vacation, including the user's present location. Upon acquiring thatinformation, the user's friend can alert the user in real time of anydangers to avoid, as well as recommended museums to visit while onvacation.

Likewise, the broadcast device 410 can acquire information from otherusers/devices (420-440) for the guardian angel 140. For example, thebroadcast device 410 can provide aspects, such as the identity andlocation of users/devices requesting access and the properties they arelooking for. This information can assist the guardian angel 140 indecision-making or permission setting.

In view of the example systems shown and described above, methodologiesthat may be implemented in accordance with the embodiments will bebetter appreciated with reference to the flow charts of FIGS. 5-10.While, for purposes of simplicity of explanation, the methodologies areshown and described as a series of acts, it is to be understood andappreciated that the methodologies are not limited by the order of theacts, as some acts may occur in different orders and/or concurrentlywith other acts from that shown and described herein. Moreover, not allillustrated acts may be required to implement the methodologiesdescribed herein.

The methodologies may be described in the general context ofcomputer-executable instructions, such as program modules, executed byone or more components. Generally, program modules include routines,programs, objects, data structures, etc., that perform particular tasksor implement particular abstract data types. Typically, thefunctionality of the program modules may be combined or distributed asdesired.

Referring specifically to FIG. 5, a method 500 for generating a decisionbased on user-environment interaction is illustrated. The method 500identifies and provides suggestions for one or more issues for a userbased on current environment information, current user information, andstored individual preferences, including empirical situations andpredefined settings. For urgent matters that require immediateattention, the method 500 automatically implements the suggestion, butfor non-urgent matters, the method 500 simply assists the user bypresenting the suggestion as a hint or reminder.

The method 500 begins at 510, where aspects of the current user andenvironment are monitored. Such aspects include areas relevant to theweather, location, direction of travel, movement surrounding the user,health, and interaction among the user and different elements of theenvironment, as well as the rate of change of such information. At 520,an issue is identified, which may have been specified by a user (e.g.,through instructions to retrieve directions to a location) or discoveredthrough environment/user observation (e.g., detection that the user'sheart has stopped beating flags a health issue that was not explicitlyidentified by the user). Continuing to 530, relevant information isanalyzed in view of stored preferences specific to the user. Suchanalysis presents, for instance, a comparison or look-up that addressesa particular schedule (e.g., meeting agenda), preference list (e.g.,favorite restaurants), or command (e.g., always update drivingdirections when road conditions change). A suggestion based on theanalysis is generated at 540, which includes making an appointment,providing driving directions, and calling for medical help. As shown at550, if the identified issue presents an urgent matter that requiresimmediate assistance (e.g., time-sensitive or health issues), the method500 automatically implements the suggestion at 560 to schedule theappointment, call for help, etc. Also at 550, if the matter is notparticularly urgent, but the identified issue corresponds with apredefined command originating from the user (e.g., a setting toautomatically update an address list), the method 500 may automaticallyimplement the suggestion at 560 for efficiency and convenience to theuser.

However, if the issue was neither urgent nor based on predefinedsettings that correspond with instructions at 550, the method 500proceeds to 570, where the suggestion is simply proposed, but notimplemented without a specific command. The user may choose to implementthe suggestion, ignore the suggestion, or alter settings to address theissue in the future. The method 500 after a suggestion is proposed at570 or automatically implemented at 560 returns to 520, where anotherissue based on the same set of observations is identified for analysis.

FIG. 6 presents a method 600 for updating stored preferences. Thepreferences pertain to settings, routines, schedules, and commandsspecific to a user in which decisions are made. The method 600continuously updates such preferences to provide for a moresophisticated evaluation scheme, where changes automatically andseamlessly take into effect.

The method 600 starts by monitoring a user and his/her environment at610. Since all aspects observed may not be stored for the sake of time,resources, simplicity, etc. (e.g., certain time-sensitive information,unnecessarily detailed aspects, etc.), the method 600 identifies justthe relevant information for storage at 620. At 630, if the updatedinformation relates to an existing stored preference, that storedpreference is modified or deleted in view of the newly acquiredinformation at 640. Returning to 630, if the updated information doesnot relate to an existing stored preference, then at 650, the newlyacquired information is transformed into an additional preference andstored as such. A single environment observation can provide for variouspresentations of information to be integrated as preferences. Forexample, one environment observation can provide information relating toweather, location, health, etc. In addition, a single aspect ofinformation can affect multiple preference settings. For instance, avisit to the dentist can affect numerous preferences relating tolocation, scheduling, and relation to other activities (e.g., apreference never to schedule meals within one hour after a dentistappointment).

FIG. 7 depicts a method 700 for managing multiple personalities inenvironment evaluation and decision-making by maintaining multipleprofiles. For a given user, he/she may desire separate profiles thatcorrespond to different settings, such as for work, home, school, etc.Such settings may provide unique information that causes decisions forwork, home, school, etc. to vary.

The method 700 begins at 710, where the user and his/her currentenvironment are monitored. Continuing to 720, if a profile selection wasmade by the user, then at 730, the data store that corresponds to theselected profile is connected for decision-making context. For example,a user may explicitly set a profile as soon as he/she returns home fromwork. A user may also define a schedule or restraints that determinewhen a profile should be active, based on time, location, etc. (e.g.,automatically set a work profile between 9:00 AM through 5:00 PM duringweekdays and set a home profile otherwise).

Returning to 720, if a profile selection was not made, the method 700can intelligently select a profile based on observations of the user andhis/her current environment at 740. For example, the method 700 caninfer that the previously selected profile applies to the currentsituation. The method 700 may also take into consideration the user'scurrent location, time of day, and activities to detect a pattern forprofile selection. For example, the method 700 may make an intelligentguess to activate a work profile when the user is in the office busywith work-related matters. Once the selection is made, the data storecorresponding to the selected profile is set at 730. Therefore,personalized decisions can be made more accurately in the context of auser's current state.

In FIG. 8, a method 800 for broadcasting information is illustrated. Aguardian angel contains information and preferences specific to a userthat may be useful to other users or devices. A user can more easilyinteract and coordinate with others when they can access a portion ofhis/her information, such as an agenda for schedule coordination ormedical history for a doctor's visit. However, since some informationmay be sensitive, the permissions for certain information for certainoutside users/devices depend on individual circumstances.

Beginning at 810, the method 800 sets protections on private informationthat should not be disclosed. The level of privacy can be globallydefined for all outside users/devices or applied to a subset of alloutside users/devices and may be changed at any time. Such determinationcan originate from the user or be inferred by analysis of the nature ofthe information and existing settings. In one example, a user may notwant to share his/her schedule regarding a particular day and thus canset a global rule to protect information from that day for all outsideusers/devices. In another example, a user may only want to sharepersonal information with designated family and friends. Proceeding to820, the method 800 determines whether access should be allowed for aparticular user/device, by considering explicit user instructions oranalysis of the situation, such the identity of the user, reason foraccess, past permissions for access, nature of the information, etc. At830, if the particular user/device is safe, then access to informationin the guardian angel is allowed for that user/device. For example,depending on the reputation of a store, the user may not want the storeto learn information other than his/her current purchase. Otherwise, at840, access to information in the guardian angel is denied for thatuser/device. After access is allowed or denied for a particularuser/device, the method 800 returns to 820, to repeat the determinationfor another user/device.

Turning to FIG. 9, another method 900 for broadcasting information ispresented based on time constraints for permitted access. As set forthat 910, when a user decides to allow access to certain information inthe guardian angel to particular users/devices, the user may want tolimit the availability of the information to an amount of time and/or tolimited times of the day. Rather than return to change the permissions,the user can predefine limits for access. Furthermore, the method 900may autonomously restrict access after an amount of time based onsensitivity of the information or unusual activity that may be evidencedby a high rate of change. For example, if the number of access requestssuddenly spikes to a high number, the method 900 may choose to withholdpermissions until positive confirmation from the user is received.

Continuing to 920, before permission is granted or denied, the method900 determines if the designated time limit has expired. If true, thenaccess to information in the guardian angel is denied for all or asubset of users/devices at 930. If the time limit hasn't expired, thenat 940, access to information in the guardian angel is allowed for now.Such access or denial is only temporary, and returning to 920, futurerequests for access are reconfirmed for authorization.

FIG. 10 illustrates a method 1000 of a specific example facilitatingoverall environment evaluation and service suggestions orimplementations. This particular example emphasizes the dynamicflexibility of the guardian angel in the situation of a tourist onvacation. The level of assistance is not restricted to a particulararea, but rather spans across a variety of requests and observations, asexpected in a new environment. The value of suggestions to a tourist ishigher than if he/she were in a familiar environment; thus the touristis more likely to depend on the suggestions of the guardian angel.

Starting at 1010, the method 1000 monitors an environment and theinteractions revolving around a user. Based on analysis of a locationunfamiliar to the user and/or confirmation from the user that he/she ison vacation, at 1020, the profile corresponding to leisure settings isapplied. This way, preferences of activities and scheduling can matchthe user's intentions during his/her time off. Before focusing on arequested decision, the method 1000 first checks if an urgent situationhas arisen and needs to be addressed at 1030. If so, at 1040, the useris interrupted with an urgent suggestion, or for time-sensitive issues,actions are automatically implemented. For example, if the user isdriving and needs directions, but his/her detected heartbeat hassuddenly stopped, help is automatically called for before directions aregiven in view of the urgency.

If there are no urgent situations that require immediate attention, themethod 1000 proceeds to 1050 and provides suggestions to the user inview of the preferences found in the leisure profile. Such suggestionsmay include driving directions to a museum. In addition, the method 1000may guess that the user will be hungry and suggests restaurants thatmatch the preferred restaurants in his/her profile en route to themuseum. The suggestions also take into account price range, reputation,wait time, etc. Furthermore, based on planned driving distances for theday, a suggestion to stop at a gas station can be presented at anappropriate time and place. At 1060, since the user may want aheightened sense of privacy and protection while in an unfamiliar place,all permissions for access to the user's information are denied. In thealternative, the user may allow access for family members accompanyinghim/her on vacation.

In order to provide a context for the various aspects of the disclosedsubject matter, FIGS. 11 and 12 as well as the following discussion areintended to provide a brief, general description of a suitableenvironment in which the various aspects of the disclosed subject mattermay be implemented. While the claimed subject matter has been describedabove in the general context of computer-executable instructions of acomputer program that runs on a computer and/or computers, it can berecognized that the claimed subject matter also may be implemented incombination with other program modules. Generally, program modulesinclude routines, programs, components, data structures, etc. thatperform particular tasks and/or implement particular abstract datatypes. Moreover, it can be appreciated that the inventive methods may bepracticed with other computer system configurations, includingsingle-processor or multiprocessor computer systems, mini-computingdevices, mainframe computers, as well as personal computers, hand-heldcomputing devices (e.g., personal digital assistant (PDA), phone, watch. . . ), microprocessor-based or programmable consumer or industrialelectronics, and the like. The illustrated aspects may also be practicedin distributed computing environments where tasks are performed byremote processing devices that are linked through a communicationsnetwork. However, some, if not all aspects can be practiced onstand-alone computers. In a distributed computing environment, programmodules may be located in both local and remote memory storage devices.

With reference to FIG. 11, an example environment 1110 for implementingvarious aspects disclosed herein includes a computer 1112 (e.g.,desktop, laptop, server, hand held, programmable consumer or industrialelectronics . . . ). The computer 1112 includes a processing unit 1114,a system memory 1116, and a system bus 11 18. The system bus 1118couples system components including, but not limited to, the systemmemory 1116 to the processing unit 11 14. The processing unit 1114 canbe any of various available microprocessors. Dual microprocessors andother multiprocessor architectures also can be employed as theprocessing unit 11 14.

The system bus 1118 can be any of several types of bus structure(s)including the memory bus or memory controller, a peripheral bus orexternal bus, and/or a local bus using any variety of available busarchitectures including, but not limited to, 11-bit bus, IndustrialStandard Architecture (ISA), Micro-Channel Architecture (MSA), ExtendedISA (EISA), Intelligent Drive Electronics (IDE), VESA Local Bus (VLB),Peripheral Component Interconnect (PCI), Universal Serial Bus (USB),Advanced Graphics Port (AGP), Personal Computer Memory CardInternational Association bus (PCMCIA), and Small Computer SystemsInterface (SCSI).

The system memory 1116 includes volatile memory 1120 and nonvolatilememory 1 122. The basic input/output system (BIOS), containing the basicroutines to transfer information between elements within the computer 1112, such as during start-up, is stored in nonvolatile memory 1122. Byway of illustration, and not limitation, nonvolatile memory 1122 caninclude read only memory (ROM), programmable ROM (PROM), electricallyprogrammable ROM (EPROM), electrically erasable ROM (EEPROM), or flashmemory. Volatile memory 1120 includes random access memory (RAM), whichacts as external cache memory. By way of illustration and notlimitation, RAM is available in many forms such as synchronous RAM(SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rateSDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), anddirect Rambus RAM (DRRAM).

Computer 1112 also includes removable/non-removable,volatile/non-volatile computer storage media. FIG. 11 illustrates, forexample, disk storage 1124. Disk storage 1124 includes, but is notlimited to, devices like a magnetic disk drive, floppy disk drive, tapedrive, Jaz drive, Zip drive, LS-100 drive, flash memory card, or memorystick. In addition, disk storage 1124 can include storage mediaseparately or in combination with other storage media including, but notlimited to, an optical disk drive such as a compact disk ROM device(CD-ROM), CD recordable drive (CD-R Drive), CD rewritable drive (CD-RWDrive) or a digital versatile disk ROM drive (DVD-ROM). To facilitateconnection of the disk storage devices 1124 to the system bus 1118, aremovable or non-removable interface is typically used such as interface1126.

It is to be appreciated that FIG. 11 describes software that acts as anintermediary between users and the basic computer resources described insuitable operating environment 1110. Such software includes an operatingsystem 1128. Operating system 1128, which can be stored on disk storage1124, acts to control and allocate resources of the computer system1112. System applications 1130 take advantage of the management ofresources by operating system 1128 through program modules 1132 andprogram data 1134 stored either in system memory 1116 or on disk storage1124. It is to be appreciated that the present invention can beimplemented with various operating systems or combinations of operatingsystems.

A user enters commands or information into the computer 1112 throughinput device(s) 1136. Input devices 1136 include, but are not limitedto, a pointing device such as a mouse, trackball, stylus, touch pad,keyboard, microphone, joystick, game pad, satellite dish, scanner, TVtuner card, digital camera, digital video camera, web camera, and thelike. These and other input devices connect to the processing unit 1114through the system bus 1118 via interface port(s) 1138. Interfaceport(s) 1138 include, for example, a serial port, a parallel port, agame port, and a universal serial bus (USB). Output device(s) 1140 usesome of the same type of ports as input device(s) 1136. Thus, forexample, a USB port may be used to provide input to computer 1112 and tooutput information from computer 1112 to an output device 1140. Outputadapter 1142 is provided to illustrate that there are some outputdevices 1140 like displays (e.g., flat panel and CRT), speakers, andprinters, among other output devices 1140 that require special adapters.The output adapters 1142 include, by way of illustration and notlimitation, video and sound cards that provide a means of connectionbetween the output device 1140 and the system bus 1118. It should benoted that other devices and/or systems of devices provide both inputand output capabilities such as remote computer(s) 1144.

Computer 1112 can operate in a networked environment using logicalconnections to one or more remote computers, such as remote computer(s)1144. The remote computer(s) 1144 can be a personal computer, a server,a router, a network PC, a workstation, a microprocessor based appliance,a peer device or other common network node and the like, and typicallyincludes many or all of the elements described relative to computer1112. For purposes of brevity, only a memory storage device 1146 isillustrated with remote computer(s) 1144. Remote computer(s) 1144 islogically connected to computer 1112 through a network interface 1148and then physically connected via communication connection(s) 1150.Network interface 1148 encompasses communication networks such aslocal-area networks (LAN) and wide-area networks (WAN). LAN technologiesinclude Fiber Distributed Data Interface (FDDI), Copper Distributed DataInterface (CDDI), Ethernet/IEEE 902.3, Token Ring/IEEE 902.5 and thelike. WAN technologies include, but are not limited to, point-to-pointlinks, circuit-switching networks like Integrated Services DigitalNetworks (ISDN) and variations thereon, packet switching networks, andDigital Subscriber Lines (DSL).

Communication connection(s) 1150 refers to the hardware/softwareemployed to connect the network interface 1148 to the bus 1118. Whilecommunication connection 1150 is shown for illustrative clarity insidecomputer 1112, it can also be external to computer 1112. Thehardware/software necessary for connection to the network interface 1148includes, for exemplary purposes only, internal and externaltechnologies such as, modems including regular telephone grade modems,cable modems, power modems and DSL modems, ISDN adapters, and Ethernetcards or components.

FIG. 12 is a schematic block diagram of a sample-computing environment1200 with which the present invention can interact. The system 1200includes one or more client(s) 1210. The client(s) 1210 can be hardwareand/or software (e.g., threads, processes, computing devices). Thesystem 1200 also includes one or more server(s) 1230. Thus, system 1200can correspond to a two-tier client server model or a multi-tier model(e.g., client, middle tier server, data server), amongst other models.The server(s) 1230 can also be hardware and/or software (e.g., threads,processes, computing devices). The servers 1230 can house threads toperform transformations by employing the present invention, for example.One possible communication between a client 1210 and a server 1230 maybe in the form of a data packet adapted to be transmitted between two ormore computer processes. The system 1200 includes a communicationframework 1250 that can be employed to facilitate communications betweenthe client(s) 1210 and the server(s) 1230. The client(s) 1210 areoperatively connected to one or more client data store(s) 1260 that canbe employed to store information local to the client(s) 1210. Similarly,the server(s) 1230 are operatively connected to one or more server datastore(s) 1240 that can be employed to store information local to theservers 1230.

It is to be appreciated that the systems and/or methods described hereincan be facilitated with computer components and non-computer relatedcomponents alike. Further, it can be ascertained that the systems and/ormethods described above are employable in a vast array of electronicrelated technologies, including, but not limited to, computers, servers,and/or handheld electronic devices, and the like.

What has been described above includes examples of the claimed subjectmatter. It is, of course, not possible to describe every conceivablecombination of components or methodologies for purposes of describingsuch subject matter, but it can be recognized that many furthercombinations and permutations of the embodiments are possible.Accordingly, the claimed subject matter is intended to embrace all suchalterations, modifications, and variations that fall within the spiritand scope of the appended claims. Furthermore, to the extent that theterm “includes” is used in either the detailed description or theclaims, such term is intended to be inclusive in a manner similar to theterm “comprising” as “comprising” is interpreted when employed as atransitional word in a claim.

1. A system that facilitates decision-making, comprising: a monitoringcomponent that acquires information from a user and a surroundingenvironment; and a decision-making component that receives theinformation and analyzes relevant portions of the information in view ofuser preferences, the decision-making component generates a suggestionto facilitate user decision making based on the analysis.
 2. The systemof claim 1, the decision-making component determines a level of urgencyaddressed by the generated suggestion.
 3. The system of claim 2, thedecision-making component automatically implements the generatedsuggestion when the level of urgency is high.
 4. The system of claim 1,the decision-making component comprises: an environment processor thatidentifies an issue in need of the suggestion; an analysis componentthat evaluates the relevant portions of the information in relation touser preferences; and a decision generator that generates the suggestionin response to a user command.
 5. The system of claim 4, the identifiedissue is inferred from the acquired information of the user and thesurrounding environment.
 6. The system of claim 1, further comprising amode selector that manages multiple personifications of the user whengenerating the suggestion.
 7. The system of claim 1, the monitoringcomponent is pluggable with external devices that acquire informationfrom the surrounding environment.
 8. The system of claim 1, furthercomprising a broadcast device that provides information regarding theuser to a plurality of other users and devices.
 9. The system of claim8, the broadcast device interacts with the plurality of other users anddevices when implementing the generated suggestion through at least oneof a command from the user and an automatic action.
 10. The system ofclaim 8, the broadcast device limits access to the system based onpermissions provided by the user.
 11. The system of claim 8, thebroadcast device negotiates with the plurality of other users anddevices on behalf of the user for permission to access the information.12. The system of claim 1, the decision-making component avoids actionor inaction that causes harm to the user.
 13. The system of claim 1, thesystem is configurable, scriptable, and automatable at least in part bythe user.
 14. A method that facilitates decision-making, comprising thefollowing acts: identifying an issue requiring immediate attention frominferences derived from observations of a user and an environment;analyzing the observations of the user and the environment withpreferences unique to the user; determining an action from the analysisthat addresses the issue; and automatically implementing the actionwithout explicit instruction from the user.
 15. The method of claim 14,further comprising: concurrently monitoring multiple aspects concerningthe user.
 16. The method of claim 14, further comprising: automaticallychanging a profile of the user when the environment changes.
 17. Themethod of claim 14, further comprising: preventing exposure of at leasta portion of personal information based on explicit instructions fromthe user, sensitivity of the personal information, and security ofrequests for the personal information.
 18. The method of claim 17,further comprising: negotiating with external entities for release ofthe personal information based on a determination of the result mostbeneficial to the user.
 19. A system that facilitates decision-making,comprising: means for concurrently observing multiple aspects of anenvironment; means for filtering out irrelevant information from theenvironment; means for analyzing relevant information from theenvironment; and means for creating a suggestion based on the analysis.20. The system of claim 19, further comprising: means for facilitatingan implementation of the suggestion through artificial intelligence.